package com.example.port.service;

import com.example.port.entity.Cargo;

import java.util.Date;
import java.util.List;

public interface CargoService {
    
    int insertCargo(Cargo cargo);
    
    List<Cargo> getAllCargos();
    
    Cargo getCargoById(Integer cargoId);
    
    int updateCargo(Cargo cargo);
    
    int deleteCargo(Integer cargoId);
    
    List<Cargo> getCargosByOwnerId(Integer ownerId);
    
    /**
     * 货物出库
     * @param cargoId 货物ID
     * @param actualExitTime 实际出库时间
     * @param operatorName 操作员
     * @param exitNotes 出库备注
     * @return 处理结果，影响的记录条数
     */
    int exitCargo(Integer cargoId, Date actualExitTime, String operatorName, String exitNotes);
    
    /**
     * 获取所有货物，包括已出库的
     * @return 所有货物列表
     */
    List<Cargo> getAllCargosIncludingExited();
    
    /**
     * 根据状态获取货物
     * @param status 货物状态，如 "IN_STORAGE"(在库) 或 "EXITED"(已出库)
     * @return 指定状态的货物列表
     */
    List<Cargo> getCargosByStatus(String status);
} 
